1. Field of the Invention
This invention relates generally to improvements in memory addressing and specifically to a system and method for writing to arbitrary individual byte locations contained within a wide-word organized memory.
2. Description of the Background Art
Digital audio and digital video are two technologies that must rapidly manipulate vast amounts of data. A common architectural approach to facilitate this data manipulation is to organize the memory so that it transfers the data in wide words. In this manner, many bytes of data may be transferred simultaneously during a single memory access.
In an exemplary application, the controller for a Digital Video Disk (DVD) transfers data using a 64-bit wide word (i.e. a word containing eight 8-bit bytes). This memory architecture allows the rapid transfer of digital audio and digital video. However, the foregoing rapid transfer of data results in a significant loss of flexibility.
Digital audio and video are often transferred as a composite digital bitstream. Embedded within the digital audio and video bitstream may be additional information called auxiliary data. This auxiliary data may arrive at irregular times and consist of irregular numbers of bytes. For this reason, the auxiliary data may not be sent directly as it arrives to a synchronous dynamic-random-access-memory (SDRAM) in even multiples of eight bytes. Sending data to memory in non-even multiples of eight bytes at a time is not possible in the customary wide-word architecture. While the address word may contain address information capable of specifying individual bytes contained within a wide word, attempting to write to these individual bytes causes problems. If the data desired to be written does not evenly fit the eight-byte wide word, then attempting to write to any byte within that wide word causes unintended data writes into bytes other than the desired bytes. The result is that the desired data is successfully written, but the other bytes then contain corrupted data.
To avoid the foregoing, some systems add considerable additional logic to the circuit which receives the bitstream. This additional logic may include additional local data buffering and other circuitry. The local buffering allows for larger amounts of auxiliary data to accumulate prior to writing to wide-word memory. When a transfer of this buffered data to wide-word memory is desired, the additional logic first reads from the wide-word memory in the target area, then assembles wide-words which contain both the buffered data and the recently-read data which should remain undisturbed. When these wide-words are subsequently written to wide-word memory, the overall effect is to write specific bytes into the wide-word memory without corrupting adjacent bytes.
The above method does allow the writing of specific bytes into a wide-word memory, but at the cost of complexity. An exemplary implementation of the above additional logic added to the circuit which receives the bitstream requires on the order of 10,000 additional gates. Therefore, there exists a need for a system and method which allows directly writing specific bytes into a wide-word memory without the complexity of supporting additional buffering and attendant multiple memory accesses.